Package lemon :: Package external :: Package Cheetah :: Package Tests :: Module unittest_local_copy
[show private | hide private]
[frames | no frames]

Module lemon.external.Cheetah.Tests.unittest_local_copy

This is a hacked version of PyUnit that extends its reporting capabilities
with optional meta data on the test cases.  It also makes it possible to
separate the standard and error output streams in TextTestRunner.

It's a hack rather than a set of subclasses because a) Steve had used double
underscore private attributes for some things I needed access to, and b) the
changes affected so many classes that it was easier just to hack it.

The changes are in the following places:
TestCase:
   - minor refactoring of  __init__ and __call__ internals
   - added some attributes and methods for storing and retrieving meta data

_TextTestResult
   - refactored the stream handling
   - incorporated all the output code from TextTestRunner
   - made the output of FAIL and ERROR information more flexible and
     incorporated the new meta data from TestCase
   - added a flag called 'explain' to __init__ that controls whether the new '
     explanation'   meta data from TestCase is printed along with tracebacks
   
TextTestRunner
   - delegated all output to _TextTestResult
   - added 'err' and 'explain' to the __init__ signature to match the changes
     in _TextTestResult
   
TestProgram
   - added -e and --explain as flags on the command line

-- Tavis Rudd (Sept 28th, 2001)

- _TestTextResult.printErrorList(): print blank line after each traceback

-- Mike Orr (Nov 11, 2002)

---------------------------------------------------------------------------
Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's
Smalltalk testing framework.

This module contains the core framework classes that form the basis of
specific test cases and suites (TestCase, TestSuite etc.), and also a
text-based utility class for running the tests and reporting the results
(TextTestRunner).

Simple usage:

    import unittest

    class IntegerArithmenticTestCase(unittest.TestCase):
        def testAdd(self):  ## test method names begin 'test*'
            self.assertEquals((1 + 2), 3)
            self.assertEquals(0 + 1, 1)
        def testMultiply(self);
            self.assertEquals((0 * 10), 0)
            self.assertEquals((5 * 8), 40)

    if __name__ == '__main__':
        unittest.main()

Further information is available in the bundled documentation, and from

  http://pyunit.sourceforge.net/

Copyright (c) 1999, 2000, 2001 Steve Purcell
This module is free software, and you may redistribute it and/or modify
it under the same terms as Python itself, so long as this copyright message
and disclaimer are retained in their original form.

IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE.  THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Classes
FunctionTestCase A test case that wraps a test function.
main A command-line program that runs a set of tests; this is primarily for making test modules conveniently executable.
StreamWrapper  
TestCase A class whose instances are single test cases.
TestLoader This class is responsible for loading tests according to various...
TestProgram A command-line program that runs a set of tests; this is primarily for making test modules conveniently executable.
TestResult Holder for test result information.
TestSuite A test suite is a composite test consisting of a number of TestCases.
TextTestRunner  
_TextTestResult  

Function Summary
  findTestCases(module, prefix, sortUsing, suiteClass)
  getTestCaseNames(testCaseClass, prefix, sortUsing)
  makeSuite(testCaseClass, prefix, sortUsing, suiteClass)
  _makeLoader(prefix, sortUsing, suiteClass)

Variable Summary
str __author__ = 'Steve Purcell'
str __email__ = 'stephen_purcell at yahoo dot com'
str __revision__ = '1.1'
TestLoader defaultTestLoader = <lemon.external.Cheetah.Tests.unitte...

Variable Details

__author__

Type:
str
Value:
'Steve Purcell'                                                        

__email__

Type:
str
Value:
'stephen_purcell at yahoo dot com'                                     

__revision__

Type:
str
Value:
'1.1'                                                                  

defaultTestLoader

Type:
TestLoader
Value:
<lemon.external.Cheetah.Tests.unittest_local_copy.TestLoader instance \
at 0x00CA1C60>                                                         

Generated by Epydoc 2.0 on Mon Nov 10 15:07:58 2003 http://epydoc.sf.net